//
//  pasteLabel.m
//  MovingLoaniOS
//
//  Created by 谷峰 on 2019/12/9.
//  Copyright © 2019 GWMFC. All rights reserved.
//

#import "PasteLabel.h"

@implementation PasteLabel
-(BOOL)canBecomeFirstResponder {
 
    return YES;
}
 
// 可以响应的方法
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {
 
    return (action == @selector(copy:));
}
 
//针对于响应方法的实现
-(void)copy:(id)sender {
 
    UIPasteboard *pboard = [UIPasteboard generalPasteboard];
    pboard.string = self.text;
}
 
//UILabel默认是不接收事件的，我们需要自己添加touch事件
-(void)attachTapHandler {
 
    self.userInteractionEnabled = YES;
    UILongPressGestureRecognizer *touch = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    [self addGestureRecognizer:touch];
}
 
//绑定事件
- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
 
        [self attachTapHandler];
    }
    return self;
}
 
-(void)awakeFromNib {
 
    [super awakeFromNib];
    [self attachTapHandler];
}
 
-(void)handleTap:(UIGestureRecognizer*) recognizer {
 
    [self becomeFirstResponder];
    UIMenuItem *copyLink = [[UIMenuItem alloc] initWithTitle:@"复制"
                                                      action:@selector(copy:)];
    [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects:copyLink, nil]];
    [[UIMenuController sharedMenuController] setTargetRect:self.frame inView:self.superview];
    [[UIMenuController sharedMenuController] setMenuVisible:YES animated: YES];
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
}
*/

@end
